/**
 * \file fournisseur.h
 * \interface fournisseur
 * \author lea
 * \author julie
 * \brief Interface de déclaration d'un type de données Fournisseur.
 *
 * Définition de fonctions et procédures destinées à manipuler des
 * données de ce type.
 */

#ifndef _FOURNISSEUR_H
#define	_FOURNISSEUR_H


#include "facturation.h"
#include "stock.h"
#include "typesprimitifs.h"

typedef struct fournisseur {
    CHAINE nom;
    ENTIER_POSITIF numero;
    ENTIER_POSITIF code_postal;
    CHAINE rue;
    CHAINE ville;
    CHAINE pays;
    POINTEUR_LISTE_PRODUIT ps;
    POINTEUR_FACTURATION pf;
} FOURNISSEUR, *POINTEUR_FOURNISSEUR;


extern POINTEUR_FOURNISSEUR creer_fournisseur(CHAINE nom, ENTIER_POSITIF numero,
        CHAINE rue, ENTIER_POSITIF code_postal, CHAINE ville, CHAINE pays);


extern void afficher_fournisseur(POINTEUR_FOURNISSEUR pf);

/**
 * Retourne vrai si l'ajout s'est bien deroule.
 * On l'utilise que dans la deuxieme iteration.
 */
extern BOOLEEN ajouter_stock(POINTEUR_LISTE_PRODUIT ps , POINTEUR_FOURNISSEUR pf);

/**
 * Retourne vrai si l'ajout s'est bien deroule.
 * On l'utilise que dans la deuxieme iteration.
 */
extern BOOLEEN ajouter_facturation(POINTEUR_FACTURATION pfa,
                                   POINTEUR_FOURNISSEUR pfo);

extern void liberer_fournisseur(POINTEUR_FOURNISSEUR pf);

#endif	/* _FOURNISSEUR_H */


